يک کد مرتب سازی ليست پيوندی در پاسکال به ترتيب حروف الفبا رو می زارم اينجا تا ازش استفاده کنين شايد به دردتون بخوره :

procedure product_al;
var f2:text ; t:ptr;
begin
 q:=first; p:=q^.link;
  while(q<>nil)do
  begin
   while (p<>nil)do
   begin
      s:=(q^.data).name; c:=(p^.data).name;
      if (  ord(s[1])  >   ord(c[1])  )then
         begin
           (temp^.data).name:=(q^.data).name;
           (temp^.data).family:=(q^.data).family;
           (temp^.data).sal:=(q^.data).sal;
           (temp^.data).ta:=(q^.data).ta;
           (temp^.data).payrol:=(q^.data).payrol;
         (q^.data).name:=(p^.data).name;
         (q^.data).family:=(p^.data).family;
         (q^.data).sal:=(p^.data).sal;
         (q^.data).ta:=(p^.data).ta;
         (q^.data).payrol:=(p^.data).payrol;
                 (p^.data).name:=(temp^.data).name;
                 (p^.data).family:=(temp^.data).family;
                 (p^.data).sal:=(temp^.data).sal;
                 (p^.data).ta:=(temp^.data).ta;
                 (p^.data).payrol:=(temp^.data).payrol;
         end;